home *** CD-ROM | disk | FTP | other *** search
/ Champak 114 / Vol 114.iso / games / harry_po.swf / scripts / frame_14 / DoAction_5.as < prev    next >
Encoding:
Text File  |  2010-08-12  |  4.2 KB  |  146 lines

  1. function fnBadGuy(x, z, character)
  2. {
  3.    var tempx = x;
  4.    var tempy = 0;
  5.    var tempz = z;
  6.    var speed = 2;
  7.    var dir = 1;
  8.    var xmov = speed;
  9.    var zmov = speed;
  10.    var name = "bad" + world.badGuysArray.length;
  11.    var x_tile = Math.ceil(tempx / world.cellWidth);
  12.    var z_tile = Math.ceil(Math.abs(tempz) / world.cellWidth);
  13.    var depth = world.tiles[x_tile][z_tile].depth + 1;
  14.    var clip = world.path.attachMovie("BadGuy" + character + "_lmc",name,depth);
  15.    var ob = {dir:dir,tempx:tempx,tempy:tempy,tempz:tempz,x_tile:x_tile,z_tile:z_tile,clip:clip,speed:speed,moving:false,targXTile:null,targZTile:null,xmov:xmov,zmov:zmov,time:0,maxtime:80};
  16.    world.badGuysArray.push(ob);
  17.    positionCharacter(ob);
  18. }
  19. function fnMoveBadGuys()
  20. {
  21.    var i = 0;
  22.    while(i < world.badGuysArray.length)
  23.    {
  24.       var ob = world.badGuysArray[i];
  25.       if(ob.moving)
  26.       {
  27.          var tempx = ob.x + ob.xmov;
  28.          var tempz = Math.abs(ob.z + ob.zmov);
  29.          var x_tile = Math.ceil(tempx / world.cellWidth);
  30.          var z_tile = Math.ceil(tempz / world.cellWidth);
  31.          if(!world.tiles[x_tile][z_tile].isObject or world.tiles[x_tile][z_tile].pickup and (x_tile != ob.targXTile and z_tile != ob.targZTile))
  32.          {
  33.             ob.tempx = ob.x + ob.xmov;
  34.             ob.tempz = ob.z + ob.zmov;
  35.             ob.x_tile = x_tile;
  36.             ob.z_tile = z_tile;
  37.             positionCharacter(ob);
  38.             var depth = world.tiles[x_tile][z_tile].depth + 3;
  39.             ob.clip.swapDepths(depth);
  40.          }
  41.          else
  42.          {
  43.             ob.tempx = ob.x;
  44.             ob.tempz = ob.z;
  45.             ob.xmov = 0;
  46.             ob.ymov = 0;
  47.             ob.moving = false;
  48.             ob.clip.gotoAndStop("stand" + ob.dir);
  49.             ob.time = 0;
  50.          }
  51.       }
  52.       i++;
  53.    }
  54. }
  55. function fnBadGuyAI()
  56. {
  57.    var i = 0;
  58.    while(i < world.badGuysArray.length)
  59.    {
  60.       var ob = world.badGuysArray[i];
  61.       ob.time = ob.time + 1;
  62.       if(!ob.moving and ob.time > 6 - gameMC.gLevel)
  63.       {
  64.          var x_tile = ob.x_tile;
  65.          var z_tile = ob.z_tile;
  66.          var xsign = world.char.x_tile - ob.x_tile;
  67.          var zsign = world.char.z_tile - ob.z_tile;
  68.          var dir;
  69.          if(xsign < 0)
  70.          {
  71.             if(!world.tiles[x_tile - 1][z_tile].isObject)
  72.             {
  73.                dir = 5;
  74.             }
  75.             else if(zsign < 0 and !world.tiles[x_tile][z_tile - 1].isObject)
  76.             {
  77.                dir = 3;
  78.             }
  79.             else if(zsign > 0 and !world.tiles[x_tile][z_tile + 1].isObject)
  80.             {
  81.                dir = 7;
  82.             }
  83.          }
  84.          else if(xsign > 0)
  85.          {
  86.             if(!world.tiles[x_tile + 1][z_tile].isObject)
  87.             {
  88.                dir = 1;
  89.             }
  90.             else if(zsign < 0 and !world.tiles[x_tile][z_tile - 1].isObject)
  91.             {
  92.                dir = 3;
  93.             }
  94.             else if(zsign > 0 and !world.tiles[x_tile][z_tile + 1].isObject)
  95.             {
  96.                dir = 7;
  97.             }
  98.          }
  99.          else if(zsign < 0)
  100.          {
  101.             dir = 3;
  102.          }
  103.          else
  104.          {
  105.             dir = 7;
  106.          }
  107.          var angle;
  108.          if(dir == 5)
  109.          {
  110.             angle = 3.12240426789153;
  111.             xChange = -1;
  112.             zChange = 0;
  113.          }
  114.          else if(dir == 3)
  115.          {
  116.             angle = 1.5894698775557;
  117.             xChange = 0;
  118.             zChange = -1;
  119.          }
  120.          else if(dir == 1)
  121.          {
  122.             angle = -0.0186735507608096;
  123.             xChange = 1;
  124.             zChange = 0;
  125.          }
  126.          else if(dir == 7)
  127.          {
  128.             angle = -1.55803852779381;
  129.             xChange = 0;
  130.             zChange = 1;
  131.          }
  132.          var cosAngle = Math.cos(angle);
  133.          var sinAngle = Math.sin(angle);
  134.          ob.xmov = 2 * cosAngle * 1.2;
  135.          ob.zmov = 2 * sinAngle;
  136.          ob.dir = dir;
  137.          ob.clip.gotoAndStop("Walk" + dir);
  138.          var howfar = Math.floor(Math.random() * 3) + 1;
  139.          ob.targXTile = x_tile + howfar * xChange;
  140.          ob.targZTile = z_tile + howfar * zChange;
  141.          ob.moving = true;
  142.       }
  143.       i++;
  144.    }
  145. }
  146.